package com.booza.dao;

import java.util.Collection;
import java.util.List;

import com.booza.model.Country;
import com.booza.model.State;

/**
 * The DAO interface for Country.
 */
public interface CountryDAO
{
	/**
	 * Inserts a new country.
	 * 
	 * @param cntry
	 *          -country details
	 */
	void create(Country cntry);

	/**
	 * Updates the country details.
	 * 
	 * @param cntry
	 *          -country details to be updated
	 */
	void update(Country cntry);

	/**
	 * Fetch all of the countries.
	 * 
	 * @return Return a list of all of the countries.
	 */
	List<Country> fetchAll();

	/**
	 * Find country by country ID.
	 * 
	 * @param id
	 *          - country ID to search for
	 * @return Returns the matching country.
	 */
	Country findCountryById(String id);

	/**
	 * Search available states from state table.
	 * 
	 * @return
	 */
	Collection<State> findStates();
}
